// package com.yunkeji.api.test;
//
// import cn.hutool.core.date.DateTime;
// import cn.hutool.core.date.DateUnit;
// import cn.hutool.core.date.DateUtil;
//
// import java.math.BigDecimal;
// import java.math.RoundingMode;
// import java.util.Date;
// import java.util.LinkedList;
// import java.util.List;
//
// public class DateGroup {
//
//    public static List<Date> groupDatesByWeek(Date inputDate) {
//        // [2024-06-22 00:00:00, 2024-06-23 00:00:00, 2024-06-24 00:00:00, 2024-06-25 00:00:00,
//        // 2024-06-26 00:00:00, 2024-06-27 00:00:00, 2024-06-28 00:00:00]
//        // 是否闰年
//        boolean leapYear = DateUtil.isLeapYear(DateUtil.year(inputDate));
//        // 本月有多少天
//        int totalDaysOfMonth = DateUtil.lengthOfMonth(DateUtil.month(inputDate) + 1, leapYear);
//        // 这是本月的第几天
//        int day = DateUtil.dayOfMonth(inputDate);
//        BigDecimal currentGroup =
//                BigDecimal.valueOf(day).divide(BigDecimal.valueOf(7), 0, RoundingMode.UP);
//        // 本月的开始日期
//        DateTime startDateCurrentMonth = DateUtil.beginOfMonth(inputDate);
//        // 计算分组的开始索引
//        Integer startIndex = currentGroup.subtract(BigDecimal.ONE).intValue() * 7;
//        // 计算分组的结束索引
//        Integer endIndex = currentGroup.intValue() * 7;
//        // 本组的开始日期
//        DateTime startDate = DateUtil.offsetDay(startDateCurrentMonth, startIndex);
//        DateTime endDate = DateUtil.offsetDay(startDateCurrentMonth, endIndex - 1);
//        if (DateUtil.month(endDate) != DateUtil.month(inputDate)) {
//            // 到了下个月了
//            // 计算相差几天
//            long between =
//                    DateUtil.between(endDate, DateUtil.endOfMonth(inputDate), DateUnit.DAY) + 1;
//            // endDate = DateUtil.endOfMonth(inputDate);
//            startDate = DateUtil.offsetDay(startDate, Integer.valueOf(String.valueOf(-between)));
//        }
//        List<Date> dateList = new LinkedList<>();
//        for (int i = 0; i < 7; i++) {
//            dateList.add(DateUtil.offsetDay(startDate, i));
//        }
//        return dateList;
//    }
//
//    public static void main(String[] args) {
//        List<Date> dates = groupDatesByWeek(new Date());
//        System.err.println(dates);
//    }
// }
